
const os = require('node:os');
const lineChar = os.EOL
// 由数据库转回 textarea 文本
const escapeHtml = require('escape-html');


function transToText(text) {
    // & 解析为 Url 
    return text.replace(/<br>/g, lineChar);
}

// 由 textarea 转为 数据库存储
function transToSql({ ...text }) {
    const textArr = []
    for (const [key, value] of Object.entries(text)) {
        // 
        text[key] = escapeHtml(value).replace(/(\r\n|\n)/g, '<br>').replace(/\s+/g, '')
        textArr.push({ name: key, content: text[key] })
    }

    // 将所有的\r\n替换为<br>
    return textArr
}

function insertImgUrl(content) {

    // 排序
    const result = content.sort((a, b) => {
        const numA = parseInt(a.name.match(/\d+/)[0], 10);
        const numB = parseInt(b.name.match(/\d+/)[0], 10);
        // 比较提取出的数字
        return numA - numB
    })
    const str = result.map(item => {
        if (item.path) {
            // 如果只有path属性，返回path
            const path = item.path.replace('public\\', '')
            return '&img' + path + '&img'
        } else if (item.content) {
            // 如果只有content属性，返回content
            return item.content
        }
        // 如果对象没有path和content属性，返回空字符串
        return ''
    })
    return str.join('')
}

module.exports = {
    transToText,
    transToSql,
    insertImgUrl
}